package cn.tedu.charging.order.dao.mapper;

import cn.tedu.charging.order.pojo.po.ChargingBillFailPO;
import cn.tedu.charging.order.pojo.po.ChargingBillSuccessPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

// org.apache.ibatis.annotations.Mapper;  用这个
// org.mapstruct.Mapper; 这个不对 以后 import 也要注意正确
@Mapper
public interface OrderFailMapper extends BaseMapper<ChargingBillFailPO> {
    /**
     * Mybatis 的 mapper 是一个接口
     * 需要在接口里定义操作数据的方法 CRUD
     * 实现接口里的方法 有两种实现方式
     *  1.通过注解 org.apache.ibatis.annotations 包下的 @Insert @Select @Update @Delete
     *  2.通过定义 xml 文件 在 xml 文件里写 sql
     */

    /**
     * 第一种方式：直接 通过注解实现
     */
    // @Insert("insert into charging_bill_success(bill_id) values (#{billId})")
    // Integer saveOrderByMybatis(ChargingBillSuccessPO po);

    /**
     * 第二种方式：通过继承 BaseMapper<T> 下的自带的xml方法
     * 直接在 test 类中 调用 insert 方法即可
     */

    /**
     * 第三种实现方式：通过 xml 文件
     * 使用这种方式：需要在 resources 文件夹下创建 mapper 文件夹以及 需要在 application.properties
     * 文件中配置 mybatis.mapper-locations=classpath:mappers/*.xml
     * 但是这里需要使用 mybatis-plus-locations 进行配置才不会报错
     * 为什么 是mybatis-plus，而不是mybatis；这是因为我这里 继承了 BaseMapper<T> 因为这里面自带了一些 CURD 的功能
     */
    
    /**
     * 使用 XML 方式实现的插入方法
     * @param po 充电订单信息
     * @return 插入结果
     */
    Integer saveOrderFailByMybatis(ChargingBillFailPO po);

}